//
//  ESTFMDBTool.h
//  ESTSCRMAPP
//
//  Created by 李贤立 on 2018/9/25.
//  Copyright © 2018年 Capfer. All rights reserved.
//

#import "TYZFMDBTool.h"
#define CityFMDB        [ESTCityFMDB sharedFMDBTool]
#define ProvinceFMDB    [ESTProvinceFMDB sharedFMDBTool]
#define CountryFMDB     [ESTCountryFMDB sharedFMDBTool]
#define SysValueFMDB    [ESTSysValueFMDB sharedFMDBTool]
@interface ESTFMDBTool : TYZFMDBTool
+ (instancetype)sharedFMDBTool;
/**
 写入原始数据
 
 @param dataArray 原始数据
 */
- (void)writeSqlWithDataArray:(NSArray<NSDictionary *> *)dataArray;
/**
 插入多条数据
 
 @param modelArray 数据模型
 */
- (void)insertWithArray:(NSArray *)modelArray;
/**
 删除所有数据
 */
- (void)delete;
/**
 删除具体的ID的数据
 
 @param mainId 识别的ID
 */
- (void)deleteWithMainId:(NSString *)mainId;
/**
 根据模型更新数据
 
 @param model 数据模型
 */
- (void)updateDataWithModel:(id)model;
/**
 根据识别ID查询整个模型
 
 @param mainId 识别ID
 @return 数据模型
 */
- (id)queryWithMainId:(NSString *)mainId;
/**
 查询整个表
 
 @return 模型数组
 */
- (NSArray *)query;
/**
 查询有效的最后修改的时间
 
 @param licenseId licenseId
 @return 最后修改的时间
 */
- (NSString *)lastModifyWithLicenseId:(NSString *)licenseId;
@end

@interface ESTProvinceFMDB : ESTFMDBTool
/**
 *  省份ID
 */
@property(nonatomic, copy) NSString *PROVINCE_ID;
/**
 *  关联系统ID
 */
@property(nonatomic, copy) NSString *LINK_ID;
/**
 *  许可ID
 */
@property(nonatomic, copy) NSString *LICENSE_ID;
/**
 *  省份编码
 */
@property(nonatomic, copy) NSString *PROVINCE_CODE;
/**
 *  省份名称
 */
@property(nonatomic, copy) NSString *PROVINCE_NAME;
/**
 *  省份全称
 */
@property(nonatomic, copy) NSString *WHOLE_NAME;
/**
 *  首字母第一个拼音
 */
@property(nonatomic, copy) NSString *PRE_PINYIN;
/**
 *  拼音全拼
 */
@property(nonatomic, copy) NSString *PINYIN;
/**
 *  首字母
 */
@property(nonatomic, copy) NSString *INITIAL;
/**
 *  经度
 */
@property(nonatomic, copy) NSString *LON;
/**
 *  纬度
 */
@property(nonatomic, copy) NSString *LAT;
/**
 *  备注
 */
@property(nonatomic, copy) NSString *REMARK;
/**
 *  缓存标识
 */
@property(nonatomic, copy) NSString *CACHE_FLAG;
/**
 *  缓存时间
 */
@property(nonatomic, copy) NSString *LAST_CACHE_DATE;
/**
 *  创建时间
 */
@property(nonatomic, copy) NSString *CREATE_DATE;
/**
 *  修改时间
 */
@property(nonatomic, copy) NSString *MODIFY_DATE;
/**
 *  并发控制字段
 */
@property(nonatomic, copy) NSString *UPDATE_CONTROL_ID;
@end

@interface ESTCityFMDB : ESTFMDBTool
/**
 *  城市ID
 */
@property(nonatomic, copy) NSString *CITY_ID;
/**
 *  关联系统ID
 */
@property(nonatomic, copy) NSString *LINK_ID;
/**
 *  许可ID
 */
@property(nonatomic, copy) NSString *LICENSE_ID;
/**
 *  省份ID
 */
@property(nonatomic, copy) NSString *PROVINCE_ID;
/**
 *  城市编码
 */
@property(nonatomic, copy) NSString *CITY_CODE;
/**
 *  城市名称
 */
@property(nonatomic, copy) NSString *CITY_NAME;
/**
 *  城市全称
 */
@property(nonatomic, copy) NSString *WHOLE_NAME;
/**
 *  城市邮编
 */
@property(nonatomic, copy) NSString *ZIP_CODE;
/**
 *  首字母第一个拼音
 */
@property(nonatomic, copy) NSString *PRE_PINYIN;
/**
 *  拼音全拼
 */
@property(nonatomic, copy) NSString *PINYIN;
/**
 *  首字母
 */
@property(nonatomic, copy) NSString *INITIAL;
/**
 *  经度
 */
@property(nonatomic, copy) NSString *LON;
/**
 *  纬度
 */
@property(nonatomic, copy) NSString *LAT;
/**
 *  备注
 */
@property(nonatomic, copy) NSString *REMARK;
/**
 *  缓存标识
 */
@property(nonatomic, copy) NSString *CACHE_FLAG;
/**
 *  缓存时间
 */
@property(nonatomic, copy) NSString *LAST_CACHE_DATE;
/**
 *  创建时间
 */
@property(nonatomic, copy) NSString *CREATE_DATE;
/**
 *  修改时间
 */
@property(nonatomic, copy) NSString *MODIFY_DATE;
/**
 *  并发控制字段
 */
@property(nonatomic, copy) NSString *UPDATE_CONTROL_ID;
@end

@interface ESTCountryFMDB : ESTFMDBTool
/**
 *  区县ID
 */
@property(nonatomic, copy) NSString *AREA_ID;
/**
 *  关联系统ID
 */
@property(nonatomic, copy) NSString *LINK_ID;
/**
 *  许可ID
 */
@property(nonatomic, copy) NSString *LICENSE_ID;
/**
 *  省份ID
 */
@property(nonatomic, copy) NSString *PROVINCE_ID;
/**
 *  城市ID
 */
@property(nonatomic, copy) NSString *CITY_ID;
/**
 *  城市编码
 */
@property(nonatomic, copy) NSString *AREA_CODE;
/**
 *  城市名称
 */
@property(nonatomic, copy) NSString *AREA_NAME;
/**
 *  城市全称
 */
@property(nonatomic, copy) NSString *WHOLE_NAME;
/**
 *  城市邮编
 */
@property(nonatomic, copy) NSString *ZIP_CODE;
/**
 *  首字母第一个拼音
 */
@property(nonatomic, copy) NSString *PRE_PINYIN;
/**
 *  拼音全拼
 */
@property(nonatomic, copy) NSString *PINYIN;
/**
 *  首字母
 */
@property(nonatomic, copy) NSString *INITIAL;
/**
 *  经度
 */
@property(nonatomic, copy) NSString *LON;
/**
 *  纬度
 */
@property(nonatomic, copy) NSString *LAT;
/**
 *  备注
 */
@property(nonatomic, copy) NSString *REMARK;
/**
 *  缓存标识
 */
@property(nonatomic, copy) NSString *CACHE_FLAG;
/**
 *  缓存时间
 */
@property(nonatomic, copy) NSString *LAST_CACHE_DATE;
/**
 *  创建时间
 */
@property(nonatomic, copy) NSString *CREATE_DATE;
/**
 *  修改时间
 */
@property(nonatomic, copy) NSString *MODIFY_DATE;
/**
 *  并发控制字段
 */
@property(nonatomic, copy) NSString *UPDATE_CONTROL_ID;
@end

@interface ESTSysValueFMDB : ESTFMDBTool
/**
 *  值列表ID
 */
@property(nonatomic, copy) NSString *VALUE_ID;
/**
 *  值类型编码
 */
@property(nonatomic, copy) NSString *VALUE_TYPE_CODE;
/**
 *  值类型名称
 */
@property(nonatomic, copy) NSString *VALUE_TYPE_NAME;
/**
 *  父值类型编码
 */
@property(nonatomic, copy) NSString *PARENT_VALUE_CODE;
/**
 *  值编码
 */
@property(nonatomic, copy) NSString *VALUE_CODE;
/**
 *  值名称
 */
@property(nonatomic, copy) NSString *VALUE_NAME;
/**
 *  排序号
 */
@property(nonatomic, copy) NSString *ORDER_NO;
/**
 *  备注
 */
@property(nonatomic, copy) NSString *REMARK;
/**
 *  备用1
 */
@property(nonatomic, copy) NSString *BACKUP1;
/**
 *  备用2
 */
@property(nonatomic, copy) NSString *BACKUP2;
/**
 *  备用3
 */
@property(nonatomic, copy) NSString *BACKUP3;
/**
 *  备用4
 */
@property(nonatomic, copy) NSString *BACKUP4;
/**
 *  备用5
 */
@property(nonatomic, copy) NSString *BACKUP5;
/**
 *  许可ID
 */
@property(nonatomic, copy) NSString *LICENSE_ID;
/**
 *  缓存标识
 */
@property(nonatomic, copy) NSString *CACHE_FLAG;
/**
 *  缓存时间
 */
@property(nonatomic, copy) NSString *LAST_CACHE_DATE;
/**
 *  创建时间
 */
@property(nonatomic, copy) NSString *CREATE_DATE;
/**
 *  修改时间
 */
@property(nonatomic, copy) NSString *MODIFY_DATE;
/**
 *  并发控制字段
 */
@property(nonatomic, copy) NSString *UPDATE_CONTROL_ID;
@end
